FOR লুপ একটি ব্যাচ স্ক্রিপ্টের একটি গুরুত্বপূর্ণ উপাদান যা বিভিন্ন কাজ পুনরাবৃত্তি করতে ব্যবহার করা হয়। Windows Batch Script এ দুটি বিশেষ ধরনের FOR লুপ রয়েছে: FOR /L এবং FOR /F। এই দুটি লুপের মাধ্যমে আপনি তালিকা তৈরি, ফাইল প্রক্রিয়াকরণ এবং কাস্টম অ্যাকশন পুনরাবৃত্তি করতে পারেন।
FOR /L লুপ
FOR /L লুপটি মূলত একটি সংখ্যা সীমা দিয়ে নির্দিষ্ট সংখ্যক পুনরাবৃত্তি করে। এটি গাণিতিক ক্রম তৈরি করতে ব্যবহৃত হয়। এই লুপটি সাধারণত একটি স্টার্টিং ভ্যালু, একটি ইনক্রিমেন্ট এবং একটি এন্ডিং ভ্যালু নেয়।
সিনট্যাক্স:
FOR /L %%variable IN (start,step,end) DO command
- start: লুপ শুরু হবে কোন মান থেকে।
- step: প্রতি পুনরাবৃত্তিতে কতটা বৃদ্ধি পাবে।
- end: লুপ কখন থামবে।
উদাহরণ:
যদি আপনি 1 থেকে 10 পর্যন্ত সংখ্যাগুলি প্রিন্ট করতে চান:
@echo off
FOR /L %%i IN (1,1,10) DO echo %%i
এটি 1 থেকে 10 পর্যন্ত একে একে প্রতিটি সংখ্যা আউটপুট করবে।
ব্যাখ্যা:
- 1 হলো স্টার্টিং ভ্যালু।
- 1 হলো স্টেপ বা বৃদ্ধি (একটি একক করে বাড়বে)।
- 10 হলো এন্ডিং ভ্যালু।
FOR /F লুপ
FOR /F লুপটি সাধারণত ফাইল, স্ট্রিং বা আউটপুট থেকে তথ্য বের করে নিয়ে কাজ করার জন্য ব্যবহৃত হয়। এই লুপটি ইনপুট থেকে এক বা একাধিক লাইনের মাধ্যমে কাজ করতে পারে। এটি এমনকি কমান্ড আউটপুট থেকেও ডেটা নিতে পারে।
সিনট্যাক্স:
FOR /F "options" %%variable IN (file) DO command
এখানে, options দিয়ে আপনি ইনপুটের পার্সিং নির্দেশনা দিতে পারেন (যেমন ডেলিমিটার সেট করা), এবং file একটি ফাইল বা কমান্ড আউটপুট হতে পারে।
উদাহরণ 1: ফাইলের প্রতিটি লাইন পড়া
@echo off
FOR /F "tokens=*" %%i IN (data.txt) DO echo %%i
এটি data.txt ফাইলের প্রতিটি লাইন পড়বে এবং তা স্ক্রিনে প্রদর্শন করবে।
উদাহরণ 2: কমান্ড আউটপুট থেকে তথ্য সংগ্রহ
@echo off
FOR /F "tokens=2 delims= " %%i IN ('ipconfig') DO echo %%i
এটি ipconfig কমান্ডের আউটপুট থেকে দ্বিতীয় টোকেন (যেমন IP ঠিকানা) নিয়ে এসে স্ক্রিনে প্রদর্শন করবে।
ব্যাখ্যা:
"tokens=2 delims= "নির্দেশনা দেয় যে, প্রথম টোকেনের পরে স্পেস (space) ডেলিমিটার হিসেবে কাজ করবে, এবং দ্বিতীয় টোকেনটি নির্বাচন করা হবে।ipconfigকমান্ডের আউটপুট থেকে প্রথম স্পেসের পরে যে তথ্য আসবে তা আউটপুট হবে।
FOR /F এর সাথে আরও কিছু অপশন:
- tokens=: কিভাবে আউটপুটকে ভাগ করা হবে (যেমন, 1st, 2nd, 3rd টোকেন)।
- delims=: কী কী চিহ্ন বা ক্যারেক্টার ডেলিমিটার হিসেবে কাজ করবে (যেমন স্পেস, কমা ইত্যাদি)।
উদাহরণ 3: Delimiter ব্যবহার করে তথ্য প্রসেস করা
@echo off
FOR /F "tokens=1,2 delims=," %%a,%%b IN (file.csv) DO echo %%a %%b
এটি file.csv ফাইলের প্রতিটি লাইনে কমা দ্বারা বিভক্ত দুটি টোকেন গ্রহণ করে এবং সেগুলিকে আউটপুট করবে।
সারাংশ
- FOR /L লুপটি সংখ্যা ভিত্তিক পুনরাবৃত্তি এবং গাণিতিক ক্রমের জন্য ব্যবহৃত হয়, যেমন 1 থেকে 10 পর্যন্ত গুন করা।
- FOR /F লুপটি ফাইল, স্ট্রিং অথবা কমান্ড আউটপুট থেকে ডেটা প্রসেস করার জন্য ব্যবহৃত হয় এবং এটি ডেলিমিটার নির্ধারণ করে টোকেনগুলো আলাদা করে কাজ করতে সাহায্য করে।
এই লুপগুলো Batch Script এর অত্যন্ত শক্তিশালী টুল, যা পুনরাবৃত্তিমূলক কাজগুলিকে সহজ এবং দ্রুত সম্পন্ন করতে সহায়তা করে।